package xgotool

import (
	"gitee.com/xiaoyutab/xgotool/xstring"
)

// 对字符串进行base64编码
//
//	p	待编码的字符串
func Base64(p string) string {
	return xstring.Base64(p)
}

// 对字符串进行encode64解码
//
//	p	待解码的字符串
func UnBase64(p string) string {
	return xstring.UnBase64(p)
}

// 对字符串进行encode64解码[去除填充解码，一般用于jwt]
//
//	p	待解码的字符串
func UnBase64Raw(p string) string {
	return xstring.UnBase64Raw(p)
}

// 对字符串进行base64编码[去除填充吗，一般用于jwt]
//
//	p	待编码的字符串
func Base64Raw(p string) string {
	return xstring.Base64Raw(p)
}

// 计算字符串的MD5值
//
//	text	待计算的字符串值
func MD5(text string) string {
	return xstring.MD5(text)
}

// 计算byte字节流的MD5值
//
//	data	待计算的字节流的值
func MD5Byte(data []byte) string {
	return xstring.MD5Byte(data)
}

// 计算文件的MD5值
//
//	file	文件的绝对路径
func MD5File(file string) string {
	return xstring.MD5File(file)
}

// 计算字符串的SHA1值
func SHA1(text string) string {
	return xstring.SHA1(text)
}

// 计算byte字节流的SHA1值
//
//	data	待计算的字节流
func SHA1Byte(data []byte) string {
	return xstring.SHA1Byte(data)
}

// 计算文件的SHA1
//
//	file	文件的绝对路径
func SHA1File(file string) string {
	return xstring.SHA1File(file)
}

// JWTToken 无视秘钥进行解密
//
//	token	JWT token结构体
//	stu		JWT token解析出的数据
func UnJwtNoKey(token string, stu any) error {
	return xstring.UnJwtNoKey(token, stu)
}

// 生成jwt签名
//
//	key			签名
//	payloadData	待加密的内容
func Jwt(key []byte, payloadData any) (string, error) {
	return xstring.Jwt(key, payloadData)
}

// 带签名秘钥的JWT解密
//
//	key		签名秘钥
//	token	JWT字符串
//	stu		结构体形式的参数体
func UnJwt(key []byte, token string, stu any) error {
	return xstring.UnJwt(key, token, stu)
}
